package fl.ass.service.transform;

import java.util.ArrayList;
import java.util.List;

import fl.ass.facade.dto.AssDealSellDTO;
import fl.ass.service.po.AssDealSell;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 处置-变卖（事业部及优车） 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class AssDealSellTransform {


	/**
	 * PO 转  DTO
	 * @param po AssDealSell
	 * @return AssDealSellDTO
	 */
	public static AssDealSellDTO toDTO(AssDealSell po) {
		AssDealSellDTO  dto = null;
		if (po != null) { 
			dto = new AssDealSellDTO();
			dto.setId(po.getId());
			dto.setMasterId(po.getMasterId());//拖车ID
			dto.setDetailId(po.getDetailId());//拖车明细ID
			dto.setCstId(po.getCstId());//客户ID
			dto.setCstNm(po.getCstNm());//客户名称
			dto.setDataId(po.getDataId());//主数据ID
			dto.setDataTypeCd(po.getDataTypeCd());//数据类型(ASS0009)
			dto.setBuyerTypeCd(po.getBuyerTypeCd());//购买者类型(ASS0010)
			dto.setBuyerCompanyNm(po.getBuyerCompanyNm());//购买企业名称
			dto.setBuyerCompanyContact(po.getBuyerCompanyContact());//购买企业联系人
			dto.setBuyerCompanyTel(po.getBuyerCompanyTel());//购买企业联系方式
			dto.setBuyerNm(po.getBuyerNm());//购买者姓名
			dto.setBuyerCd(po.getBuyerCd());//购买者证件号
			dto.setBuyerTel(po.getBuyerTel());//购买者联系方式
			dto.setPickCarNm(po.getPickCarNm());//提车人姓名
			dto.setPickCarCd(po.getPickCarCd());//提车人证件号
			dto.setPickCarTel(po.getPickCarTel());//提车人联系方式
			dto.setSellAmt(po.getSellAmt());//销售金额
			dto.setSellChannelCd(po.getSellChannelCd());//销售渠道(ASS0011)
			dto.setSellDesc(po.getSellDesc());//销售说明
			dto.setPayeeAccNm(po.getPayeeAccNm());//收款方账户名称  
			dto.setPayeeAccNo(po.getPayeeAccNo());//收款方银行账号
			dto.setPayeeBankNm(po.getPayeeBankNm());//收款方开户银行
			dto.setPayeeBankNo(po.getPayeeBankNo());//收款方开户行号 
			dto.setReceivedAmt(po.getReceivedAmt());//到账金额
			dto.setReceivedTm(po.getReceivedTm());//到账时间
			dto.setHandlerId(po.getHandlerId());//经手人ID
			dto.setHandlerNm(po.getHandlerNm());//经手人姓名
			dto.setHandlerCd(po.getHandlerCd());//经手人证件号
			dto.setHandlerTel(po.getHandlerTel());//经手人联系方式
			dto.setFlowStatusCd(po.getFlowStatusCd());//流程状态(ASS0002)
			dto.setIsBorrow(po.getIsBorrow());//是否预借权证
			dto.setIsPay(po.getIsPay());//是否确认客户付款
			dto.setIsReceived(po.getIsReceived());//是否已经到账
			dto.setIsDel(po.getIsDel());//是否删除 1-删除 0-正常
			dto.setBuyerCompanyCode(po.getBuyerCompanyCode());//购买企业组织机构代码
			dto.setApplyNm(po.getApplyNm());//申请人名称

			dto.setCrtTm(po.getCrtTm());//创建时间
			dto.setCrtUsrId(po.getCrtUsrId());//创建人
			dto.setMdfTm(po.getMdfTm());//修改时间
			dto.setMdfUsrId(po.getMdfUsrId());//修改人
			
			dto.setBackedFlagCd(po.getBackedFlagCd());//拖回标记
			dto.setBaseAmt(po.getBaseAmt());//保底价
			dto.setSellEstiAmt(po.getSellEstiAmt());//处置评估价
			dto.setSellEstiDt(po.getSellEstiDt());//处置评估时间
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto AssDealSellDTO
	 * @return AssDealSell
	 */
	public static AssDealSell toPO(AssDealSellDTO dto) {
		AssDealSell po = null;
		if (dto != null) {
			po = new AssDealSell();
			po.setId(dto.getId());
			po.setMasterId(dto.getMasterId());//拖车ID
			po.setDetailId(dto.getDetailId());//拖车明细ID
			po.setCstId(dto.getCstId());//客户ID
			po.setCstNm(dto.getCstNm());//客户名称
			po.setDataId(dto.getDataId());//主数据ID
			po.setDataTypeCd(dto.getDataTypeCd());//数据类型(ASS0009)
			po.setBuyerTypeCd(dto.getBuyerTypeCd());//购买者类型(ASS0010)
			po.setBuyerCompanyNm(dto.getBuyerCompanyNm());//购买企业名称
			po.setBuyerCompanyContact(dto.getBuyerCompanyContact());//购买企业联系人
			po.setBuyerCompanyTel(dto.getBuyerCompanyTel());//购买企业联系方式
			po.setBuyerNm(dto.getBuyerNm());//购买者姓名
			po.setBuyerCd(dto.getBuyerCd());//购买者证件号
			po.setBuyerTel(dto.getBuyerTel());//购买者联系方式
			po.setPickCarNm(dto.getPickCarNm());//提车人姓名
			po.setPickCarCd(dto.getPickCarCd());//提车人证件号
			po.setPickCarTel(dto.getPickCarTel());//提车人联系方式
			po.setSellAmt(dto.getSellAmt());//销售金额
			po.setSellChannelCd(dto.getSellChannelCd());//销售渠道(ASS0011)
			po.setSellDesc(dto.getSellDesc());//销售说明
			po.setPayeeAccNm(dto.getPayeeAccNm());//收款方账户名称  
			po.setPayeeAccNo(dto.getPayeeAccNo());//收款方银行账号
			po.setPayeeBankNm(dto.getPayeeBankNm());//收款方开户银行
			po.setPayeeBankNo(dto.getPayeeBankNo());//收款方开户行号 
			po.setReceivedAmt(dto.getReceivedAmt());//到账金额
			po.setReceivedTm(dto.getReceivedTm());//到账时间
			po.setHandlerId(dto.getHandlerId());//经手人ID
			po.setHandlerNm(dto.getHandlerNm());//经手人姓名
			po.setHandlerCd(dto.getHandlerCd());//经手人证件号
			po.setHandlerTel(dto.getHandlerTel());//经手人联系方式
			po.setFlowStatusCd(dto.getFlowStatusCd());//流程状态(ASS0002)
			po.setIsBorrow(dto.getIsBorrow());//是否预借权证
			po.setIsPay(dto.getIsPay());//是否确认客户付款
			po.setIsReceived(dto.getIsReceived());//是否已经到账
			po.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			po.setBuyerCompanyCode(dto.getBuyerCompanyCode());//购买企业组织机构代码
			po.setApplyNm(dto.getApplyNm());//申请人名称

			po.setCrtTm(dto.getCrtTm());//创建时间
			po.setCrtUsrId(dto.getCrtUsrId());//创建人
			po.setMdfTm(dto.getMdfTm());//修改时间
			po.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			po.setBackedFlagCd(dto.getBackedFlagCd());//拖回标记
			po.setBaseAmt(dto.getBaseAmt());//保底价
			po.setSellEstiAmt(dto.getSellEstiAmt());//处置评估价
			po.setSellEstiDt(dto.getSellEstiDt());//处置评估时间
		}
		return po;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list List<AssDealSell>
	 * @return List<AssDealSellDTO>
	 */
	public static List<AssDealSellDTO> toDTOList(List<AssDealSell> list) {
		List<AssDealSellDTO>  voList = new ArrayList<AssDealSellDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealSell po : list) {
				voList.add(toDTO(po));
			}
		}
		return voList;
	}
}
